/**
 */
package org.mro.grib.model.files.secondEdition.grids.impl;

import java.nio.ByteBuffer;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

import org.mro.grib.model.files.secondEdition.grids.GridDefinitionTemplate31100;
import org.mro.grib.model.files.secondEdition.grids.GridsPackage;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Grid Definition Template31100</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getNumberOfHorizontalPoints <em>Number Of Horizontal Points</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getBasicAngleOfTheInitialProductionDomain <em>Basic Angle Of The Initial Production Domain</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getSubdivisionsOfBasicAngle <em>Subdivisions Of Basic Angle</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getLatitudeOfFirstGridPoint <em>Latitude Of First Grid Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getLongitudeOfFirstGridPoint <em>Longitude Of First Grid Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getScanningMode <em>Scanning Mode</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getLatitudeOfLastGridPoint <em>Latitude Of Last Grid Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getLongitudeOfLastGridPoint <em>Longitude Of Last Grid Point</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getTypeOfHorizontalLine <em>Type Of Horizontal Line</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getNumberOfTimeSteps <em>Number Of Time Steps</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getUnitOfOffsetFromReferenceTime <em>Unit Of Offset From Reference Time</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getOffsetFromReferenceOfFirstTime <em>Offset From Reference Of First Time</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getTypeOfTimeIncrement <em>Type Of Time Increment</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getUnitOfTimeIncrement <em>Unit Of Time Increment</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getTimeIncrement <em>Time Increment</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getYear <em>Year</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getMonth <em>Month</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getDay <em>Day</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getHour <em>Hour</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getMinute <em>Minute</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.GridDefinitionTemplate31100Impl#getSecond <em>Second</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class GridDefinitionTemplate31100Impl extends EarthShapeGridDefinitionImpl implements GridDefinitionTemplate31100 {
	/**
	 * The default value of the '{@link #getNumberOfHorizontalPoints() <em>Number Of Horizontal Points</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfHorizontalPoints()
	 * @generated
	 * @ordered
	 */
	protected static final int NUMBER_OF_HORIZONTAL_POINTS_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNumberOfHorizontalPoints() <em>Number Of Horizontal Points</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfHorizontalPoints()
	 * @generated
	 * @ordered
	 */
	protected int numberOfHorizontalPoints = NUMBER_OF_HORIZONTAL_POINTS_EDEFAULT;

	/**
	 * The default value of the '{@link #getBasicAngleOfTheInitialProductionDomain() <em>Basic Angle Of The Initial Production Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getBasicAngleOfTheInitialProductionDomain()
	 * @generated
	 * @ordered
	 */
	protected static final int BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getBasicAngleOfTheInitialProductionDomain() <em>Basic Angle Of The Initial Production Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getBasicAngleOfTheInitialProductionDomain()
	 * @generated
	 * @ordered
	 */
	protected int basicAngleOfTheInitialProductionDomain = BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT;

	/**
	 * The default value of the '{@link #getSubdivisionsOfBasicAngle() <em>Subdivisions Of Basic Angle</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSubdivisionsOfBasicAngle()
	 * @generated
	 * @ordered
	 */
	protected static final int SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSubdivisionsOfBasicAngle() <em>Subdivisions Of Basic Angle</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSubdivisionsOfBasicAngle()
	 * @generated
	 * @ordered
	 */
	protected int subdivisionsOfBasicAngle = SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT;

	/**
	 * The default value of the '{@link #getLatitudeOfFirstGridPoint() <em>Latitude Of First Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLatitudeOfFirstGridPoint()
	 * @generated
	 * @ordered
	 */
	protected static final int LATITUDE_OF_FIRST_GRID_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getLatitudeOfFirstGridPoint() <em>Latitude Of First Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLatitudeOfFirstGridPoint()
	 * @generated
	 * @ordered
	 */
	protected int latitudeOfFirstGridPoint = LATITUDE_OF_FIRST_GRID_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getLongitudeOfFirstGridPoint() <em>Longitude Of First Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLongitudeOfFirstGridPoint()
	 * @generated
	 * @ordered
	 */
	protected static final int LONGITUDE_OF_FIRST_GRID_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getLongitudeOfFirstGridPoint() <em>Longitude Of First Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLongitudeOfFirstGridPoint()
	 * @generated
	 * @ordered
	 */
	protected int longitudeOfFirstGridPoint = LONGITUDE_OF_FIRST_GRID_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getScanningMode() <em>Scanning Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScanningMode()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCANNING_MODE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScanningMode() <em>Scanning Mode</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScanningMode()
	 * @generated
	 * @ordered
	 */
	protected byte scanningMode = SCANNING_MODE_EDEFAULT;

	/**
	 * The default value of the '{@link #getLatitudeOfLastGridPoint() <em>Latitude Of Last Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLatitudeOfLastGridPoint()
	 * @generated
	 * @ordered
	 */
	protected static final int LATITUDE_OF_LAST_GRID_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getLatitudeOfLastGridPoint() <em>Latitude Of Last Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLatitudeOfLastGridPoint()
	 * @generated
	 * @ordered
	 */
	protected int latitudeOfLastGridPoint = LATITUDE_OF_LAST_GRID_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getLongitudeOfLastGridPoint() <em>Longitude Of Last Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLongitudeOfLastGridPoint()
	 * @generated
	 * @ordered
	 */
	protected static final int LONGITUDE_OF_LAST_GRID_POINT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getLongitudeOfLastGridPoint() <em>Longitude Of Last Grid Point</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getLongitudeOfLastGridPoint()
	 * @generated
	 * @ordered
	 */
	protected int longitudeOfLastGridPoint = LONGITUDE_OF_LAST_GRID_POINT_EDEFAULT;

	/**
	 * The default value of the '{@link #getTypeOfHorizontalLine() <em>Type Of Horizontal Line</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTypeOfHorizontalLine()
	 * @generated
	 * @ordered
	 */
	protected static final byte TYPE_OF_HORIZONTAL_LINE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getTypeOfHorizontalLine() <em>Type Of Horizontal Line</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTypeOfHorizontalLine()
	 * @generated
	 * @ordered
	 */
	protected byte typeOfHorizontalLine = TYPE_OF_HORIZONTAL_LINE_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumberOfTimeSteps() <em>Number Of Time Steps</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfTimeSteps()
	 * @generated
	 * @ordered
	 */
	protected static final int NUMBER_OF_TIME_STEPS_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNumberOfTimeSteps() <em>Number Of Time Steps</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfTimeSteps()
	 * @generated
	 * @ordered
	 */
	protected int numberOfTimeSteps = NUMBER_OF_TIME_STEPS_EDEFAULT;

	/**
	 * The default value of the '{@link #getUnitOfOffsetFromReferenceTime() <em>Unit Of Offset From Reference Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUnitOfOffsetFromReferenceTime()
	 * @generated
	 * @ordered
	 */
	protected static final byte UNIT_OF_OFFSET_FROM_REFERENCE_TIME_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getUnitOfOffsetFromReferenceTime() <em>Unit Of Offset From Reference Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUnitOfOffsetFromReferenceTime()
	 * @generated
	 * @ordered
	 */
	protected byte unitOfOffsetFromReferenceTime = UNIT_OF_OFFSET_FROM_REFERENCE_TIME_EDEFAULT;

	/**
	 * The default value of the '{@link #getOffsetFromReferenceOfFirstTime() <em>Offset From Reference Of First Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getOffsetFromReferenceOfFirstTime()
	 * @generated
	 * @ordered
	 */
	protected static final int OFFSET_FROM_REFERENCE_OF_FIRST_TIME_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getOffsetFromReferenceOfFirstTime() <em>Offset From Reference Of First Time</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getOffsetFromReferenceOfFirstTime()
	 * @generated
	 * @ordered
	 */
	protected int offsetFromReferenceOfFirstTime = OFFSET_FROM_REFERENCE_OF_FIRST_TIME_EDEFAULT;

	/**
	 * The default value of the '{@link #getTypeOfTimeIncrement() <em>Type Of Time Increment</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTypeOfTimeIncrement()
	 * @generated
	 * @ordered
	 */
	protected static final byte TYPE_OF_TIME_INCREMENT_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getTypeOfTimeIncrement() <em>Type Of Time Increment</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTypeOfTimeIncrement()
	 * @generated
	 * @ordered
	 */
	protected byte typeOfTimeIncrement = TYPE_OF_TIME_INCREMENT_EDEFAULT;

	/**
	 * The default value of the '{@link #getUnitOfTimeIncrement() <em>Unit Of Time Increment</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUnitOfTimeIncrement()
	 * @generated
	 * @ordered
	 */
	protected static final byte UNIT_OF_TIME_INCREMENT_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getUnitOfTimeIncrement() <em>Unit Of Time Increment</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getUnitOfTimeIncrement()
	 * @generated
	 * @ordered
	 */
	protected byte unitOfTimeIncrement = UNIT_OF_TIME_INCREMENT_EDEFAULT;

	/**
	 * The default value of the '{@link #getTimeIncrement() <em>Time Increment</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTimeIncrement()
	 * @generated
	 * @ordered
	 */
	protected static final int TIME_INCREMENT_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getTimeIncrement() <em>Time Increment</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTimeIncrement()
	 * @generated
	 * @ordered
	 */
	protected int timeIncrement = TIME_INCREMENT_EDEFAULT;

	/**
	 * The default value of the '{@link #getYear() <em>Year</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getYear()
	 * @generated
	 * @ordered
	 */
	protected static final short YEAR_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getYear() <em>Year</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getYear()
	 * @generated
	 * @ordered
	 */
	protected short year = YEAR_EDEFAULT;

	/**
	 * The default value of the '{@link #getMonth() <em>Month</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMonth()
	 * @generated
	 * @ordered
	 */
	protected static final byte MONTH_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getMonth() <em>Month</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMonth()
	 * @generated
	 * @ordered
	 */
	protected byte month = MONTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getDay() <em>Day</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getDay()
	 * @generated
	 * @ordered
	 */
	protected static final byte DAY_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getDay() <em>Day</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getDay()
	 * @generated
	 * @ordered
	 */
	protected byte day = DAY_EDEFAULT;

	/**
	 * The default value of the '{@link #getHour() <em>Hour</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getHour()
	 * @generated
	 * @ordered
	 */
	protected static final byte HOUR_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getHour() <em>Hour</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getHour()
	 * @generated
	 * @ordered
	 */
	protected byte hour = HOUR_EDEFAULT;

	/**
	 * The default value of the '{@link #getMinute() <em>Minute</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMinute()
	 * @generated
	 * @ordered
	 */
	protected static final byte MINUTE_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getMinute() <em>Minute</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getMinute()
	 * @generated
	 * @ordered
	 */
	protected byte minute = MINUTE_EDEFAULT;

	/**
	 * The default value of the '{@link #getSecond() <em>Second</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSecond()
	 * @generated
	 * @ordered
	 */
	protected static final byte SECOND_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getSecond() <em>Second</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSecond()
	 * @generated
	 * @ordered
	 */
	protected byte second = SECOND_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected GridDefinitionTemplate31100Impl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return GridsPackage.Literals.GRID_DEFINITION_TEMPLATE31100;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNumberOfHorizontalPoints() {
		return numberOfHorizontalPoints;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfHorizontalPoints(int newNumberOfHorizontalPoints) {
		int oldNumberOfHorizontalPoints = numberOfHorizontalPoints;
		numberOfHorizontalPoints = newNumberOfHorizontalPoints;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_HORIZONTAL_POINTS, oldNumberOfHorizontalPoints, numberOfHorizontalPoints));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getBasicAngleOfTheInitialProductionDomain() {
		return basicAngleOfTheInitialProductionDomain;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setBasicAngleOfTheInitialProductionDomain(int newBasicAngleOfTheInitialProductionDomain) {
		int oldBasicAngleOfTheInitialProductionDomain = basicAngleOfTheInitialProductionDomain;
		basicAngleOfTheInitialProductionDomain = newBasicAngleOfTheInitialProductionDomain;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN, oldBasicAngleOfTheInitialProductionDomain, basicAngleOfTheInitialProductionDomain));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSubdivisionsOfBasicAngle() {
		return subdivisionsOfBasicAngle;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSubdivisionsOfBasicAngle(int newSubdivisionsOfBasicAngle) {
		int oldSubdivisionsOfBasicAngle = subdivisionsOfBasicAngle;
		subdivisionsOfBasicAngle = newSubdivisionsOfBasicAngle;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__SUBDIVISIONS_OF_BASIC_ANGLE, oldSubdivisionsOfBasicAngle, subdivisionsOfBasicAngle));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getLatitudeOfFirstGridPoint() {
		return latitudeOfFirstGridPoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLatitudeOfFirstGridPoint(int newLatitudeOfFirstGridPoint) {
		int oldLatitudeOfFirstGridPoint = latitudeOfFirstGridPoint;
		latitudeOfFirstGridPoint = newLatitudeOfFirstGridPoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_FIRST_GRID_POINT, oldLatitudeOfFirstGridPoint, latitudeOfFirstGridPoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getLongitudeOfFirstGridPoint() {
		return longitudeOfFirstGridPoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLongitudeOfFirstGridPoint(int newLongitudeOfFirstGridPoint) {
		int oldLongitudeOfFirstGridPoint = longitudeOfFirstGridPoint;
		longitudeOfFirstGridPoint = newLongitudeOfFirstGridPoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_FIRST_GRID_POINT, oldLongitudeOfFirstGridPoint, longitudeOfFirstGridPoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScanningMode() {
		return scanningMode;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScanningMode(byte newScanningMode) {
		byte oldScanningMode = scanningMode;
		scanningMode = newScanningMode;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__SCANNING_MODE, oldScanningMode, scanningMode));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getLatitudeOfLastGridPoint() {
		return latitudeOfLastGridPoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLatitudeOfLastGridPoint(int newLatitudeOfLastGridPoint) {
		int oldLatitudeOfLastGridPoint = latitudeOfLastGridPoint;
		latitudeOfLastGridPoint = newLatitudeOfLastGridPoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_LAST_GRID_POINT, oldLatitudeOfLastGridPoint, latitudeOfLastGridPoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getLongitudeOfLastGridPoint() {
		return longitudeOfLastGridPoint;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setLongitudeOfLastGridPoint(int newLongitudeOfLastGridPoint) {
		int oldLongitudeOfLastGridPoint = longitudeOfLastGridPoint;
		longitudeOfLastGridPoint = newLongitudeOfLastGridPoint;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_LAST_GRID_POINT, oldLongitudeOfLastGridPoint, longitudeOfLastGridPoint));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getTypeOfHorizontalLine() {
		return typeOfHorizontalLine;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTypeOfHorizontalLine(byte newTypeOfHorizontalLine) {
		byte oldTypeOfHorizontalLine = typeOfHorizontalLine;
		typeOfHorizontalLine = newTypeOfHorizontalLine;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_HORIZONTAL_LINE, oldTypeOfHorizontalLine, typeOfHorizontalLine));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNumberOfTimeSteps() {
		return numberOfTimeSteps;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfTimeSteps(int newNumberOfTimeSteps) {
		int oldNumberOfTimeSteps = numberOfTimeSteps;
		numberOfTimeSteps = newNumberOfTimeSteps;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_TIME_STEPS, oldNumberOfTimeSteps, numberOfTimeSteps));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getUnitOfOffsetFromReferenceTime() {
		return unitOfOffsetFromReferenceTime;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setUnitOfOffsetFromReferenceTime(byte newUnitOfOffsetFromReferenceTime) {
		byte oldUnitOfOffsetFromReferenceTime = unitOfOffsetFromReferenceTime;
		unitOfOffsetFromReferenceTime = newUnitOfOffsetFromReferenceTime;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_OFFSET_FROM_REFERENCE_TIME, oldUnitOfOffsetFromReferenceTime, unitOfOffsetFromReferenceTime));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getOffsetFromReferenceOfFirstTime() {
		return offsetFromReferenceOfFirstTime;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setOffsetFromReferenceOfFirstTime(int newOffsetFromReferenceOfFirstTime) {
		int oldOffsetFromReferenceOfFirstTime = offsetFromReferenceOfFirstTime;
		offsetFromReferenceOfFirstTime = newOffsetFromReferenceOfFirstTime;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__OFFSET_FROM_REFERENCE_OF_FIRST_TIME, oldOffsetFromReferenceOfFirstTime, offsetFromReferenceOfFirstTime));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getTypeOfTimeIncrement() {
		return typeOfTimeIncrement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTypeOfTimeIncrement(byte newTypeOfTimeIncrement) {
		byte oldTypeOfTimeIncrement = typeOfTimeIncrement;
		typeOfTimeIncrement = newTypeOfTimeIncrement;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_TIME_INCREMENT, oldTypeOfTimeIncrement, typeOfTimeIncrement));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getUnitOfTimeIncrement() {
		return unitOfTimeIncrement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setUnitOfTimeIncrement(byte newUnitOfTimeIncrement) {
		byte oldUnitOfTimeIncrement = unitOfTimeIncrement;
		unitOfTimeIncrement = newUnitOfTimeIncrement;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_TIME_INCREMENT, oldUnitOfTimeIncrement, unitOfTimeIncrement));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getTimeIncrement() {
		return timeIncrement;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTimeIncrement(int newTimeIncrement) {
		int oldTimeIncrement = timeIncrement;
		timeIncrement = newTimeIncrement;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__TIME_INCREMENT, oldTimeIncrement, timeIncrement));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public short getYear() {
		return year;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setYear(short newYear) {
		short oldYear = year;
		year = newYear;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__YEAR, oldYear, year));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getMonth() {
		return month;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMonth(byte newMonth) {
		byte oldMonth = month;
		month = newMonth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__MONTH, oldMonth, month));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getDay() {
		return day;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setDay(byte newDay) {
		byte oldDay = day;
		day = newDay;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__DAY, oldDay, day));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getHour() {
		return hour;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setHour(byte newHour) {
		byte oldHour = hour;
		hour = newHour;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__HOUR, oldHour, hour));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getMinute() {
		return minute;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setMinute(byte newMinute) {
		byte oldMinute = minute;
		minute = newMinute;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__MINUTE, oldMinute, minute));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getSecond() {
		return second;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSecond(byte newSecond) {
		byte oldSecond = second;
		second = newSecond;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.GRID_DEFINITION_TEMPLATE31100__SECOND, oldSecond, second));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_HORIZONTAL_POINTS:
				return getNumberOfHorizontalPoints();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				return getBasicAngleOfTheInitialProductionDomain();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SUBDIVISIONS_OF_BASIC_ANGLE:
				return getSubdivisionsOfBasicAngle();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_FIRST_GRID_POINT:
				return getLatitudeOfFirstGridPoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_FIRST_GRID_POINT:
				return getLongitudeOfFirstGridPoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SCANNING_MODE:
				return getScanningMode();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_LAST_GRID_POINT:
				return getLatitudeOfLastGridPoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_LAST_GRID_POINT:
				return getLongitudeOfLastGridPoint();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_HORIZONTAL_LINE:
				return getTypeOfHorizontalLine();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_TIME_STEPS:
				return getNumberOfTimeSteps();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_OFFSET_FROM_REFERENCE_TIME:
				return getUnitOfOffsetFromReferenceTime();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__OFFSET_FROM_REFERENCE_OF_FIRST_TIME:
				return getOffsetFromReferenceOfFirstTime();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_TIME_INCREMENT:
				return getTypeOfTimeIncrement();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_TIME_INCREMENT:
				return getUnitOfTimeIncrement();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TIME_INCREMENT:
				return getTimeIncrement();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__YEAR:
				return getYear();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MONTH:
				return getMonth();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__DAY:
				return getDay();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__HOUR:
				return getHour();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MINUTE:
				return getMinute();
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SECOND:
				return getSecond();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_HORIZONTAL_POINTS:
				setNumberOfHorizontalPoints((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				setBasicAngleOfTheInitialProductionDomain((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SUBDIVISIONS_OF_BASIC_ANGLE:
				setSubdivisionsOfBasicAngle((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_FIRST_GRID_POINT:
				setLatitudeOfFirstGridPoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_FIRST_GRID_POINT:
				setLongitudeOfFirstGridPoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SCANNING_MODE:
				setScanningMode((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_LAST_GRID_POINT:
				setLatitudeOfLastGridPoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_LAST_GRID_POINT:
				setLongitudeOfLastGridPoint((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_HORIZONTAL_LINE:
				setTypeOfHorizontalLine((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_TIME_STEPS:
				setNumberOfTimeSteps((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_OFFSET_FROM_REFERENCE_TIME:
				setUnitOfOffsetFromReferenceTime((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__OFFSET_FROM_REFERENCE_OF_FIRST_TIME:
				setOffsetFromReferenceOfFirstTime((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_TIME_INCREMENT:
				setTypeOfTimeIncrement((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_TIME_INCREMENT:
				setUnitOfTimeIncrement((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TIME_INCREMENT:
				setTimeIncrement((Integer)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__YEAR:
				setYear((Short)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MONTH:
				setMonth((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__DAY:
				setDay((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__HOUR:
				setHour((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MINUTE:
				setMinute((Byte)newValue);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SECOND:
				setSecond((Byte)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_HORIZONTAL_POINTS:
				setNumberOfHorizontalPoints(NUMBER_OF_HORIZONTAL_POINTS_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				setBasicAngleOfTheInitialProductionDomain(BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SUBDIVISIONS_OF_BASIC_ANGLE:
				setSubdivisionsOfBasicAngle(SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_FIRST_GRID_POINT:
				setLatitudeOfFirstGridPoint(LATITUDE_OF_FIRST_GRID_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_FIRST_GRID_POINT:
				setLongitudeOfFirstGridPoint(LONGITUDE_OF_FIRST_GRID_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SCANNING_MODE:
				setScanningMode(SCANNING_MODE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_LAST_GRID_POINT:
				setLatitudeOfLastGridPoint(LATITUDE_OF_LAST_GRID_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_LAST_GRID_POINT:
				setLongitudeOfLastGridPoint(LONGITUDE_OF_LAST_GRID_POINT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_HORIZONTAL_LINE:
				setTypeOfHorizontalLine(TYPE_OF_HORIZONTAL_LINE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_TIME_STEPS:
				setNumberOfTimeSteps(NUMBER_OF_TIME_STEPS_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_OFFSET_FROM_REFERENCE_TIME:
				setUnitOfOffsetFromReferenceTime(UNIT_OF_OFFSET_FROM_REFERENCE_TIME_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__OFFSET_FROM_REFERENCE_OF_FIRST_TIME:
				setOffsetFromReferenceOfFirstTime(OFFSET_FROM_REFERENCE_OF_FIRST_TIME_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_TIME_INCREMENT:
				setTypeOfTimeIncrement(TYPE_OF_TIME_INCREMENT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_TIME_INCREMENT:
				setUnitOfTimeIncrement(UNIT_OF_TIME_INCREMENT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TIME_INCREMENT:
				setTimeIncrement(TIME_INCREMENT_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__YEAR:
				setYear(YEAR_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MONTH:
				setMonth(MONTH_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__DAY:
				setDay(DAY_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__HOUR:
				setHour(HOUR_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MINUTE:
				setMinute(MINUTE_EDEFAULT);
				return;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SECOND:
				setSecond(SECOND_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_HORIZONTAL_POINTS:
				return numberOfHorizontalPoints != NUMBER_OF_HORIZONTAL_POINTS_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN:
				return basicAngleOfTheInitialProductionDomain != BASIC_ANGLE_OF_THE_INITIAL_PRODUCTION_DOMAIN_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SUBDIVISIONS_OF_BASIC_ANGLE:
				return subdivisionsOfBasicAngle != SUBDIVISIONS_OF_BASIC_ANGLE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_FIRST_GRID_POINT:
				return latitudeOfFirstGridPoint != LATITUDE_OF_FIRST_GRID_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_FIRST_GRID_POINT:
				return longitudeOfFirstGridPoint != LONGITUDE_OF_FIRST_GRID_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SCANNING_MODE:
				return scanningMode != SCANNING_MODE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LATITUDE_OF_LAST_GRID_POINT:
				return latitudeOfLastGridPoint != LATITUDE_OF_LAST_GRID_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__LONGITUDE_OF_LAST_GRID_POINT:
				return longitudeOfLastGridPoint != LONGITUDE_OF_LAST_GRID_POINT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_HORIZONTAL_LINE:
				return typeOfHorizontalLine != TYPE_OF_HORIZONTAL_LINE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__NUMBER_OF_TIME_STEPS:
				return numberOfTimeSteps != NUMBER_OF_TIME_STEPS_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_OFFSET_FROM_REFERENCE_TIME:
				return unitOfOffsetFromReferenceTime != UNIT_OF_OFFSET_FROM_REFERENCE_TIME_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__OFFSET_FROM_REFERENCE_OF_FIRST_TIME:
				return offsetFromReferenceOfFirstTime != OFFSET_FROM_REFERENCE_OF_FIRST_TIME_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TYPE_OF_TIME_INCREMENT:
				return typeOfTimeIncrement != TYPE_OF_TIME_INCREMENT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__UNIT_OF_TIME_INCREMENT:
				return unitOfTimeIncrement != UNIT_OF_TIME_INCREMENT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__TIME_INCREMENT:
				return timeIncrement != TIME_INCREMENT_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__YEAR:
				return year != YEAR_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MONTH:
				return month != MONTH_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__DAY:
				return day != DAY_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__HOUR:
				return hour != HOUR_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__MINUTE:
				return minute != MINUTE_EDEFAULT;
			case GridsPackage.GRID_DEFINITION_TEMPLATE31100__SECOND:
				return second != SECOND_EDEFAULT;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (numberOfHorizontalPoints: "); //$NON-NLS-1$
		result.append(numberOfHorizontalPoints);
		result.append(", basicAngleOfTheInitialProductionDomain: "); //$NON-NLS-1$
		result.append(basicAngleOfTheInitialProductionDomain);
		result.append(", subdivisionsOfBasicAngle: "); //$NON-NLS-1$
		result.append(subdivisionsOfBasicAngle);
		result.append(", latitudeOfFirstGridPoint: "); //$NON-NLS-1$
		result.append(latitudeOfFirstGridPoint);
		result.append(", longitudeOfFirstGridPoint: "); //$NON-NLS-1$
		result.append(longitudeOfFirstGridPoint);
		result.append(", scanningMode: "); //$NON-NLS-1$
		result.append(scanningMode);
		result.append(", latitudeOfLastGridPoint: "); //$NON-NLS-1$
		result.append(latitudeOfLastGridPoint);
		result.append(", longitudeOfLastGridPoint: "); //$NON-NLS-1$
		result.append(longitudeOfLastGridPoint);
		result.append(", typeOfHorizontalLine: "); //$NON-NLS-1$
		result.append(typeOfHorizontalLine);
		result.append(", numberOfTimeSteps: "); //$NON-NLS-1$
		result.append(numberOfTimeSteps);
		result.append(", unitOfOffsetFromReferenceTime: "); //$NON-NLS-1$
		result.append(unitOfOffsetFromReferenceTime);
		result.append(", offsetFromReferenceOfFirstTime: "); //$NON-NLS-1$
		result.append(offsetFromReferenceOfFirstTime);
		result.append(", typeOfTimeIncrement: "); //$NON-NLS-1$
		result.append(typeOfTimeIncrement);
		result.append(", unitOfTimeIncrement: "); //$NON-NLS-1$
		result.append(unitOfTimeIncrement);
		result.append(", timeIncrement: "); //$NON-NLS-1$
		result.append(timeIncrement);
		result.append(", year: "); //$NON-NLS-1$
		result.append(year);
		result.append(", month: "); //$NON-NLS-1$
		result.append(month);
		result.append(", day: "); //$NON-NLS-1$
		result.append(day);
		result.append(", hour: "); //$NON-NLS-1$
		result.append(hour);
		result.append(", minute: "); //$NON-NLS-1$
		result.append(minute);
		result.append(", second: "); //$NON-NLS-1$
		result.append(second);
		result.append(')');
		return result.toString();
	}

	/* (non-Javadoc)
	 * @see org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#initialise(java.nio.ByteBuffer)
	 */
	@Override
	public void initialise(ByteBuffer buffer) {
		super.initialise(buffer);
		numberOfHorizontalPoints = buffer.getInt();
		basicAngleOfTheInitialProductionDomain = buffer.getInt();
		subdivisionsOfBasicAngle = buffer.getInt();
		latitudeOfFirstGridPoint = buffer.getInt();
		longitudeOfFirstGridPoint = buffer.getInt();
		scanningMode = buffer.get();
		latitudeOfLastGridPoint = buffer.getInt();
		longitudeOfLastGridPoint = buffer.getInt();
		typeOfHorizontalLine = buffer.get();
		numberOfTimeSteps = buffer.getInt();
		unitOfOffsetFromReferenceTime = buffer.get();
		offsetFromReferenceOfFirstTime = buffer.getInt();
		typeOfTimeIncrement = buffer.get();
		unitOfTimeIncrement = buffer.get();
		timeIncrement = buffer.getInt();
		year = buffer.getShort();
		month = buffer.get();
		day = buffer.get();
		hour = buffer.get();
		minute = buffer.get();
		second = buffer.get();
	}

} //GridDefinitionTemplate31100Impl
